Systems and methods for managing a provider&#39;s online status in a distributed network

ABSTRACT

A system manages communications between a provider and a requestor in a distributed network. A requestor is implemented on a computing device and provides a stay online binding. The stay online binding identifies a binding that is desired by the requestor. A provider is implemented on a computing device and provides a binding. The provider receives the stay online binding from the requestor and continues providing the binding because the provider became aware of the stay online binding.

RELATED APPLICATIONS

This application is a Continuation of U.S. patent application Ser. No.11/324,025 filed Dec. 29, 2005 for “Systems and Methods for Managing aProvider's Online Status in a Distributed Network,” with inventor BryantEastham, which is incorporated herein by reference.

TECHNICAL FIELD

The present invention relates generally to computers andcomputer-related technology. More specifically, the present inventionrelates to systems and methods for managing a provider's online statusin a distributed network.

BACKGROUND

Computer and communication technologies continue to advance at a rapidpace. Indeed, computer and communication technologies are involved inmany aspects of a person's day. For example, many devices being usedtoday by consumers have a small computer inside of the device. Thesesmall computers come in varying sizes and degrees of sophistication.These small computers include everything from one microcontroller to afully-functional complete computer system. For example, these smallcomputers may be a one-chip computer, such as a microcontroller, aone-board type of computer, such as a controller, a typical desktopcomputer, such as an IBM-PC compatible, etc.

Computers typically have one or more processors at the heart of thecomputer. The processor(s) usually are interconnected to differentexternal inputs and outputs, and function to manage the particularcomputer or device. For example, a processor in a thermostat may beconnected to buttons used to select the temperature setting, to thefurnace or air conditioner to change the temperature, and to temperaturesensors to read and display the current temperature on a display.

Many appliances, devices, etc., include one or more small computers. Forexample, thermostats, furnaces, air conditioning systems, refrigerators,telephones, typewriters, automobiles, vending machines, and manydifferent types of industrial equipment now typically have smallcomputers, or processors, inside of them. Computer software runs theprocessors of these computers and instructs the processors how to carryout certain tasks. For example, the computer software running on athermostat may cause an air conditioner to stop running when aparticular temperature is reached or may cause a heater to turn on whenneeded.

These types of small computers that are a part of a device, appliance,tool, etc., are often referred to as embedded systems. The term“embedded system” usually refers to computer hardware and software thatis part of a larger system. Embedded systems may not have typical inputand output devices such as a keyboard, mouse, and/or monitor. Usually,at the heart of each embedded system is one or more processor(s).

A lighting system may incorporate an embedded system. The embeddedsystem may be used to monitor and control the effects of the lightingsystem. For example, the embedded system may provide controls to dim thebrightness of the lights within the lighting system. Alternatively, theembedded system may provide controls to increase the brightness of thelights. The embedded system may provide controls to initiate a specificlighting pattern among the individual lights within the lighting system.Embedded systems may be coupled to individual switches within thelighting system. These embedded systems may instruct the switches topower up or power down individual lights or the entire lighting system.Similarly, embedded systems may be coupled to individual lights withinthe lighting system. The brightness or power state of each individuallight may be controlled by the embedded system.

A security system may also incorporate an embedded system. The embeddedsystem may be used to control the individual security sensors thatcomprise the security system. For example, the embedded system mayprovide controls to power up each of the security sensors automatically.Embedded systems may be coupled to each of the individual securitysensors. For example, an embedded system may be coupled to a motionsensor. The embedded system may power up the individual motion sensorautomatically and provide controls to activate the motion sensor ifmotion is detected. Activating a motion sensor may include providinginstructions to power up an LED located within the motion sensor, outputan alarm from the output ports of the motion sensor, and the like.Embedded systems may also be coupled to sensors monitoring a door. Theembedded system may provide instructions to the sensor monitoring thedoor to activate when the door is opened or closed. Similarly, embeddedsystems may be coupled to sensors monitoring a window. The embeddedsystem may provide instructions to activate the sensor monitoring thewindow if the window is opened or closed.

Some embedded systems may also be used to control wireless products suchas cell phones. The embedded system may provide instructions to power upthe LED display of the cell phone. The embedded system may also activatethe audio speakers within the cell phone to provide the user with anaudio notification relating to the cell phone.

Home appliances may also incorporate an embedded system. Home appliancesmay include appliances typically used in a conventional kitchen, e.g.,stove, refrigerator, microwave, etc. Home appliances may also includeappliances that relate to the health and well-being of the user. Forexample, a massage recliner may incorporate an embedded system. Theembedded system may provide instructions to automatically recline theback portion of the chair according to the preferences of the user. Theembedded system may also provide instructions to initiate theoscillating components within the chair that cause vibrations within therecliner according to the preferences of the user.

Additional products typically found in homes may also incorporateembedded systems. For example, an embedded system may be used within atoilet to control the level of water used to refill the container tank.Embedded systems may be used within a jetted bathtub to control theoutflow of air.

As stated, embedded systems may be used to monitor or control manydifferent systems, resources, products, etc. With the growth of theInternet and the World Wide Web, embedded systems are increasinglyconnected to the Internet so that they can be remotely monitored and/orcontrolled. Other embedded systems may be connected to computer networksincluding local area networks, wide area networks, etc.

Some embedded systems may provide data and/or services to othercomputing devices using a computer network. Alternatively, there may betypical computers or computing devices that provide data and/or servicesto other computing devices using a computer network. Sometimes it isbeneficial for a provider to know whether the services that it providesare desired by a requestor. Lack of this knowledge can cause additionaltraffic on the network. These situations, as well as others, may causeinefficiencies in communication across the network. Benefits may berealized if systems and methods were provided to manage a provider'sonline status in a distributed network.

BRIEF DESCRIPTION OF THE DRAWINGS

Exemplary embodiments of the invention will become more fully apparentfrom the following description and appended claims, taken in conjunctionwith the accompanying drawings. Understanding that these drawings depictonly exemplary embodiments and are, therefore, not to be consideredlimiting of the invention's scope, the exemplary embodiments of theinvention will be described with additional specificity and detailthrough use of the accompanying drawings in which:

FIG. 1 is a network block diagram illustrating two intervening accessnodes in a computer network;

FIG. 2 is a network block diagram illustrating several interveningaccess nodes in a computer network;

FIG. 3 is a block diagram of one embodiment of an intervening accessnode network with a requestor and a provider;

FIG. 4 is a timing diagram illustrating a method for establishingcommunication between a provider and a requestor in a network;

FIG. 5 is a block diagram of an embodiment of an intervening accessnode;

FIG. 6 is a block diagram of an intervening access node network thatincludes one or more intervening access nodes and two providers;

FIG. 7 is a block diagram of a requestor sending out two request signalsand two stay online bindings;

FIG. 8 is a block diagram of a provider sending out two bindings and twostay online request signals;

FIG. 9 is a block diagram of a provider and two requestors, that may beconnected to an intervening access node network;

FIG. 10 is a flow diagram of an embodiment of a method of a providercommunicating with a network;

FIG. 11 is a flow diagram of an embodiment of a method of a requestorestablishing communication with a provider in a network;

FIG. 12 is a block diagram of hardware components that may be used in anembodiment of an embedded device which may be used as either an embeddedprovider or as an embedded requestor;

FIG. 13 illustrates one embodiment of a system wherein the presentsystems and methods may be implemented;

FIG. 14 is an additional embodiment of a system wherein the presentsystems and methods of the present invention may be implemented; and

FIG. 15 is a block diagram illustrating one embodiment of a home system.

DETAILED DESCRIPTION

Embodiments disclosed herein relate generally to a system for managingcommunications between a provider and a requestor in a distributednetwork. In accordance with an embodiment, a requestor is implemented ona computing device. The requestor provides a stay online binding. Thestay online binding identifies at least one binding that is desired bythe requestor. The requestor provides the stay online binding. Also inaccordance with an embodiment, a provider is implemented on a computingdevice. The provider provides at least one binding. The providerreceives the stay online binding from the requestor and continuesproviding the binding(s) because the provider became aware of the stayonline binding.

In some embodiments, the system includes an intervening access nodenetwork. The communications between the requestor and the provider inthe system are sent via the intervening access node network.

In other embodiments, the provider computing device includes a processorin electronic communication with the memory. Instructions are stored inthe memory that implement a method. The provider computing devicemonitors communications from an intervening access node network for anystay online bindings that concern the provider. The provider computingdevice also discontinues the providing of the binding when it isdetermined that no stay online bindings concerning the provider arebeing communicated over the intervening access node network.

In alternative embodiments, the provider computing device queries forany stay online bindings that concern the provider. The provider alsoprovides the binding again. In another embodiment, the providercomputing device queries for any stay online bindings that concern theprovider using a connectionless protocol.

In still other embodiments, the requestor computing device includes aprocessor in electronic communication with the memory. Instructions arestored in the memory that implement a method. The requestor computingdevice determines whether at least one binding concerning the requestorexists. The requestor computing device may also use the binding toreceive data or services from the provider.

A method for managing communications between a provider and a requestorin a distributed network is also disclosed. The method provides the stayonline binding from the requestor to the provider. The method providesat least one binding by the provider because the provider became awareof the stay online binding. The method determines whether any stayonline bindings exist that concern the provider. In some embodiments,the communications between the requestor and the provider are sent viaan intervening access node network. The method monitors communicationsfrom an intervening access node network for any stay online bindingsthat concern the provider. The method may also use a connectionlessprotocol for monitoring the presence of the stay online bindings thatconcern the provider.

In an alternative embodiment, the method discontinues the providing ofthe binding(s) to the requestor when it is determined that no stayonline bindings concerning the provider are being communicated over theintervening access node network. The method, in some embodiments,discontinues the providing of the binding(s) to the requestor when it isdetermined that no stay online bindings concerning the provider arebeing communicated over the intervening access node network bydisconnecting from the network. The method disclosed may wait apredetermined period of time after discontinuing the providing of thebinding(s) to the requestor before querying for a stay online bindingthat concerns the provider. Where at least one stay online bindingexists that concerns the provider, according to the method, the providercontinues again to provide the binding(s). The method also uses thebinding(s) to receive data or services from the provider.

A computing device that is configured to implement a method for managingcommunications of a provider in a distributed network is also disclosed.The computing device includes a processor in electronic communicationwith the memory. Instructions are stored in the memory that implement amethod. The method provides at least one binding. The method alsoreceives the stay online binding from the requestor. The methodcontinues to provide the binding(s) because the provider became aware ofthe stay online binding.

In a distributed network where clients and devices may connect anddisconnect frequently, there may be issues concerning when to establishconnections and for how long the connections should be established. Insome systems, the client may actively request a connection, and then may“own” the connection until it releases it. This type of system may workwell for direct connections, but is difficult in a distributedenvironment. In a distributed environment, the actual connection thatthe client “owns” may be to an intervening node, and not to the device.Problems in this case may include how the connection between the deviceand the intervening node is established and when it can be closed.

A solution to these problems may be to keep a “connection count”, andrelease the connections when the “connection count” is zero. This maypresent difficulties because the distributed nature of the system maymake it hard to decide who keeps the count. Any errors in the countoften result in persistent connections and additional load on thedistributed network.

As mentioned above, a related issue is determining who establishes theconnection on the device side. In the “direct connect from client”situation discussed above, the device may never open the connection. Inthe distributed case, it may be hard to determine whether a deviceshould open the connection.

Once the clients and devices are connected, there may be furtherproblems related to the multiple services that a device may provide. Forexample, the connected clients may not require all the services that canbe provided, but lack a direct method of identifying which services areof interest. All of the problems associated with knowing whether theconnections should exist also relate to the problems of which servicesshould be provided.

There may be benefits to having the device start the connection. Onebenefit may include the system correctly “cleaning up” if a clientdisconnects without properly closing the connection. A further benefitmay include that this solution may work in a distributed environmentwith no centralized knowledge of which connections should exist.

Various embodiments of the invention are now described with reference tothe Figures, where like reference numbers indicate identical orfunctionally similar elements. The embodiments of the present invention,as generally described and illustrated in the Figures herein, could bearranged and designed in a wide variety of different configurations.Thus, the following more detailed description of several exemplaryembodiments of the present invention, as represented in the Figures, isnot intended to limit the scope of the invention, as claimed, but ismerely representative of the embodiments of the invention.

The word “exemplary” is used exclusively herein to mean “serving as anexample, instance, or illustration.” Any embodiment described herein as“exemplary” is not necessarily to be construed as preferred oradvantageous over other embodiments. While the various aspects of theembodiments are presented in drawings, the drawings are not necessarilydrawn to scale unless specifically indicated.

Many features of the embodiments disclosed herein may be implemented ascomputer software, electronic hardware, or combinations of both. Toclearly illustrate this interchangeability of hardware and software,various components will be described generally in terms of theirfunctionality. Whether such functionality is implemented as hardware orsoftware depends upon the particular application and design constraintsimposed on the overall system. Skilled artisans may implement thedescribed functionality in varying ways for each particular application,but such implementation decisions should not be interpreted as causing adeparture from the scope of the present invention.

Where the described functionality is implemented as computer software,such software may include any type of computer instruction or computerexecutable code located within a memory device and/or transmitted aselectronic signals over a system bus or network. Software thatimplements the functionality associated with components described hereinmay comprise a single instruction, or many instructions, and may bedistributed over several different code segments, among differentprograms, and across several memory devices.

FIG. 1 is a network block diagram illustrating two intervening accessnodes in the network 100. A provider 102 is in electronic communicationwith the network 100. The network embodiment 100 of FIG. 1 includes tworequestors 104 in electronic communication with the network 100. Theintervening access nodes 106 are also on the network 100. There may bemore nodes on the network 100.

An intervening access node 106 is a network node that provides featuresand services to the network 100. An intervening access node 106 may beused in a variety of ways. For example, an intervening access node 106may be present on a network 100 to provide services to computers,applications and/or objects on the network 100. An intervening accessnode 106 may also be used to provide a protocol converter. Anintervening access node 106 may be embedded or it 106 may be largeenough to handle enterprise traffic.

One feature that an intervening access node 106 may include relates toobject refinement. Object refinement refers to the situation where anintervening access node 106 places itself in place of an object andprovides different implementations of the same interfaces. This allows,among other things, for problems in the implementation of an interfaceto be fixed without changing the actual end provider of the interface.

An additional feature of an intervening access node 106 is that ofobject augmentation. For object augmentation, the intervening accessnode 106 adds new interfaces to an object that the end provider does notsupport.

In current design, the intervening access node 106 does notdifferentiate between clients and devices, so any service added isavailable to any (authorized) connected entity or node.

The network 100 as shown in FIG. 1 may inherit many features of webservices. Web services are accessed using web protocols, usually HTTPand SOAP. The architecture is based on the peer-to-peer paradigm ofnetworking.

Multiple intervening access nodes 106 in communication with one anotherform an intervening access node network 110. To requestors 104 and/orproviders 102, the one or more intervening access nodes 106 of theintervening access node network 110 appear as a single interveningaccess node 106. The size or number included in the intervening accessnode network 110 is transparent to providers 102 and/or requestors 104.

A provider 102 is a node on the network 100 that is the source of aservice 108. A requestor 104 is a node on the network 100 that is theuser of the service 108. A requestor 104 is a software entityimplemented on a node that may directly discover a service 108 tocontrol or interact with it.

The service 108 may be any kind of service that may be provided by acomputing device. Some possible examples of services 108 includeproviding temperature data from a location, providing surveillance data,providing weather information, providing an audio stream, providing avideo stream, etc. Many different kinds of services and/or data may beprovided over a computer network 100 from a provider 102.

The service 108 is accessed through one or more bindings 112. A binding112 includes an object identifier 114 and an interface identifier 116.Typically, the object 114 and the interface 116 are in pairs. A provider102 can provide a plurality of bindings 112. It is possible thatmultiple providers 102 can be providing the same service 108, binding112, object 114 or interface 116.

The provider 102 may be an embedded provider. An embedded provider is aprovider 102 being implemented on an embedded device. An embedded deviceis a type of computing device that does not include all the samecomponents associated with a typical desktop computer. For example, someembedded devices do not include monitors, others do not include akeyboard or a mouse, and some embedded devices do not include either amonitor or a keyboard/mouse. Many embedded devices aremicrocontroller-based devices, i.e., the central processor for theembedded device is a microcontroller.

The roles of requestor and provider may be taken on by devices andsoftware nodes connected to intervening access nodes 106. In addition,an intervening access node 106 may be a requestor and/or a provider. Forexample, the intervening access node 106 may be a requestor/providerwhen setting up the communication between intervening access nodes 106.An intervening access node 106 serves as a requestor when it 106requests information about providers when it 106 connects to anotherintervening access node 106. An intervening access node 106 serves asprovider when it is providing information about other providers to otherintervening access nodes 106.

The term “network” as used herein refers to a system in which a seriesof nodes are interconnected by a communications path. A node is aphysical computing device that communicates with other nodes. Thespecific behavior of a node is determined by the applications orsoftware it executes. Applications running on nodes of a networkcommunicate with each other through software modules that implementprotocols, formalized rules for how data is sent over a network. Someprotocols deal with the timing, sequencing, and error checking of datatransmission. Others deal more with how the data is formatted and thecommands and responses that the nodes exchange. A set of protocols thatwork together is called a protocol stack, with each protocol acting as alayer in the stack that is built on top of another layer. The top layerof a protocol stack is used by an application, the middle layers dealwith transferring groups (packets and frames) of data between nodes, andthe bottom layer deals directly with the networking hardware thattransfers data.

Physical networks consist of nodes that are connected by some sort ofphysical medium (e.g., electrical wire, optical fiber, air). Thisphysical connection may sometimes be referred to as a link. A physicalnetwork limited to two nodes may be referred to as point-to-point, whilea physical network that may support more than two nodes may be referredto as multiple-access. Each node on a multiple-access network has aphysical address that is used to distinguish it from the other nodes onthe network.

Logical networks may be superimposed onto physical networks to specify aunique group of nodes. Each node in a logical network has a logicaladdress that is mapped by a protocol to the node's physical address. Asub-network, or subnet, is a physically or logically independent portionof a network, distinguished by a subnet number.

Most protocols deal with logical networks because most physical networkissues already have many well-defined implementations and defining newphysical layers is not required. Logical networks also have the benefitof being insulated from the physical network, and are therefore moregenerally useful. For example, TCP/IP is defined on top of a logicalnetwork (IP). IP can run on many physical networks (Ethernet, serial,wireless, etc.). This makes TCP/IP a more generic solution than had itbeen defined only in terms of some specific physical network.

Any number of intervening access nodes 106 may be used in a network 100.FIG. 2 illustrates a network 200 that includes a number of interveningaccess nodes 206 as shown. Three requestors 204, 205 are in electroniccommunication with the intervening access nodes 206. In the networkembodiment 200 shown in FIG. 2, the three requestors 204, 205 allrequest the services 208, 228, 248 being provided by the providers 202,205, 206 e. The data from the services 208, 228, 248 is sent through theintervening access node network 210.

The intervening access node network 210 of FIG. 2 operates similarly tothe intervening access node network 110 of FIG. 1. In typical operation,the requestors 104, 204, 205 and the providers 102, 202, 205, 206 ewould not distinguish between the intervening access node network 110 ofFIG. 1 and the intervening access node network 210 of FIG. 2. FIG. 2also illustrates that a node may serve as both a requestor and aprovider, as shown by the illustrated requestor/provider 205. Thisrequestor/provider 205 provides a service 228 and binding 232. FIG. 2also illustrates that a service/binding may be provided by anintervening access node 206 e.

As shown above, there may be many services and many bindings that areavailable on a network. It would be beneficial to allow these servicesto be “signaled” to provide a binding rather than always providing it.Additionally, when the connection used between the provider 102 and theintervening access node network 110 is transitory, it may be beneficialto provide a method of signaling the provider 102 whether an establishedconnection is no longer needed, or when a connection that is notestablished is desired. Through the systems and methods disclosedherein, requests are allowed to propagate through the network in anefficient manner, allowing for both loops in the connections, and alsoallowing for a high number of disinterested providers (meaning providersthat may not be connected or may not be currently providing a binding112).

The intervening access nodes 106, 206 may be connected in an arbitraryway, which includes loops. In FIGS. 1 and 2, requestors 104, 204, 205and providers 102, 202, 205, 206 e were illustrated. Requestors andproviders may be separate nodes or may coexist on an intervening accessnode. The methods used by the intervening access node network 110 allowfor requestors 104, 204, 205 to sense the addition and removal ofbindings 112 by providers 102, 202, 205, 206 e. They also allow thequery for availability of bindings 112 on the network 100. Additionaldetails about intervening access node networks are described in thefollowing copending patent applications: U.S. patent application Ser.No. 11/302,306, titled “Systems and Methods for Handling Failover in aDistributed Routing Environment,” filed Dec. 13, 2005, with inventorsBryant Eastham and Tom Milligan; U.S. patent application Ser. No.11/292,944, titled “Systems and Methods for Efficient ElectronicCommunication in a Distributed Routing Environment,” filed Dec. 2, 2005,with inventors Bryant Eastham and Tom Milligan; and U.S. patentapplication Ser. No. ______, titled “Systems and Methods for Discoveringand Interacting with Services,” filed Dec. 28, 2005, with inventorBryant Eastham. These copending U.S. patent applications, which areassigned to the assignee of the present invention, are herebyincorporated by reference in their entirety.

The query by a node regarding a binding 112 may be done either using aconnection-oriented protocol such as TCP/IP or over a connectionlessprotocol such as UDP/IP. The benefits of using a connectionless protocolinclude lower overhead on the intervening access nodes 106, 206 as fewerconnections are required.

FIG. 3 is a block diagram of one embodiment of an intervening accessnode network 310 with a requestor 304 and a provider 302. As discussedabove, a requestor 304 may act as both a provider and a requestor. Inthe present embodiment, the requestor 304 acts as both a provider and arequestor by providing a binding 320 and by using the service 108 of aprovider 302 over the intervening access node network 310.

The binding that is provided by the requestor 304 is a stay onlinebinding 320. A stay online binding 320 may serve the purpose ofnotifying all providers 102 that provide the desired service 108 that arequestor 304 is connected to the network 310 that desires the services108 that the providers 102 are providing. In this case, the object ID314 b of the stay online binding 320 is equal to at least one of objects114 provided by the services 108.

A stay online binding 320 is similar to a regular binding 112 because ittypically includes an object ID 314 b and an interface ID 322 a. A stayonline binding 320 may be treated like any other binding 112, because itmay include the same or similar information that may be included in anyother binding 112 sent over the intervening access node network 110.

The provider 302 may also act as both a provider and a requestor, asdiscussed above. In the present embodiment, the provider 302 acts asboth a provider and a requestor by providing a binding 312 and watchingfor the stay online binding 320 that may be transmitted over theintervening access node network 310 from a requestor 304.

The binding 312 provided by the provider 302 may include an object ID314 a and an interface ID 316 a. Unlike the stay online binding 320, thebinding 312 of the present embodiment, may identify interfaces used tointeract with the desired service 108.

FIG. 4 is a timing diagram 400 illustrating a method for establishingcommunication between a provider 402 and a requestor 404 in a network.The time axis 401 is shown. A requestor 404 may be searching for aservice 108 on the network 100. At some point after connecting to thenetwork 100, at time t1, the requestor 404 may provide 410 a stay onlinebinding 320. The stay online binding 320 is a way that the requestor 404asks any providers of a compatible binding 312 to establish aconnection, provide its bindings 112, and stay online. Compatiblebindings 312 are bindings 312 where the object ID 314 b of the stayonline binding 320 is equal to the object 314 a of the binding 312provided by the service 108 through the provider 402. In the presentembodiment, at some point after connecting to the network 100, at timet2, a provider 402 may provide 420 a binding 312. In an alternativeembodiment, the provider 402 may provide 420 a binding 312 before therequestor 404 provides 410 its stay online binding 320.

A provider 402 has a binding 312 added into the network 100. At time t3,some point after sending 420 a binding 312, the requestor 404 may remove430 the stay online binding 320. This removal 430 may reach the provider402. After the provider 402 senses the removal 430, at time t4, theprovider 402 may remove 440 the binding 312.

FIG. 5 is a block diagram of an embodiment of an intervening access node506. The intervening access node 506 may include the informationnecessary to enable it to determine whether a stay online binding 320should be forwarded on, for example, to a provider 102. Likewise, theintervening access node 506 may also include the information necessaryto enable it to determine whether a binding 112 should be forwarded on,for example, to a requestor 104.

The intervening access node 506 may include a database of bindings 526that may include all of the bindings 112 on the network 110 of which itis aware. These bindings 526 may include bindings 512 and stay onlinebindings 520, each of which may also include an object ID 114 andinterface ID 116. Each node in the network may know whether a particularbinding 112, 320 exists, although it may not know the total count ofproviders 102 for that binding 112. If there are multiple providers 102that provide a particular binding 112, then the binding 112 may notcease to exist, from the perspective of a node, until all providers 102disconnect from the network 110 or remove their binding 112. Thedatabase of bindings 526 may be queried by providers 102 both over aconnection-oriented protocol like TCP/IP or a connectionless protocollike UDP/IP. The query may be for any binding 112, 320 that is present.The database may also be monitored by a provider 102 so that changes inthe contents are determined.

FIG. 6 is a block diagram 800 of an intervening access node network 810that includes one or more intervening access nodes and two providers 802a, 802 b that are providing the same binding 812. Bindings 112 areconsidered the same if their object IDs 114 are the same and theirinterfaces 116 are the same. As providers 802 connect and disconnect,the network 810 may determine which provider 802 to use. Provider A 802a may include a first binding 812 a. Provider B 802 b may include afirst binding 812 b. Thus, both providers 802 may provide the samebinding, the first binding 812. The network 810 and the providers 802 a,802 b may negotiate and determine which provider 802 may provide thebinding 112 and which one will be held in reserve to provide the binding112 at a later time, if necessary. This situation typically occurs whentwo or more providers 102 connect to a network 810 at approximately thesame time such that each of the providers 102 may not become aware ofthe other provider 102 until after they have already advertised theirbindings 112. In the present embodiment, applying this logic to the stayonline binding 320 may ensure that the binding 320 will exist in thenetwork 810 until the last provider 802 disconnects or removes thebinding 812.

Referring now to FIG. 7, when particular bindings 112 are desired by arequestor 904, the requestor 904 may provide its stay online bindings920 a, 920 b by adding a first stay online binding A 920 a and adding asecond stay online binding B 920 b to the intervening access nodenetwork 110. The first stay online binding A 920 a may notify whoeverreceives the binding 920 a that bindings 112 with object IDs 914 a aredesired. The stay online binding A 920 a, of the present embodiment, mayinclude an object ID A 914 a and the interface ID stay online 922. Thestay online identifier may notify a provider 102 with a matching objectID 114 that the provider 102 should provide its binding 112 and remainonline. The second stay online binding B 920 b may notify whoeverreceives the binding that bindings 112 with object IDs 914 b aredesired.

FIG. 8 is a block diagram of a provider 1002 providing two bindings 1012a, 1012 b. When the provider 1002 connects to an intervening access nodenetwork 110, it may determine the presence of stay online binding A 920a and stay online binding B 920 b. In an alternative embodiment, theprovider 1002 queries the network 110 without connecting to determinethe presence of an applicable stay online binding 520, and onlyestablishes a connection when an applicable stay online binding 520 isdetected.

Upon sensing stay online bindings 920 and after establishing aconnection, the provider 1002 may add its bindings 1012 a, 1012 b byadding a first binding A 1012 a and a second binding B 1012 b. Addingthe first binding 1012 a notifies whoever receives it that the firstbinding A 1012 a is available. Adding the second binding B 1012 bnotifies whoever receives it that the second binding B 1012 b isavailable. With this information requestors 104 can use the bindings1012 a, 1012 b from the provider 1002.

FIG. 9 is a block diagram of a provider 102 and two requestors 104 a,104 b that may be connected to an intervening access node network 110.Requestor A 104 a may provide stay online binding A 1120 a. Requestor B104 b may provide stay online binding B 1120 b. The provider 102 mayreceive stay online binding A 1120 a and/or stay online binding B 1120b. If the provider 102 continues to receive either stay online binding1120 a, 1120 b, the provider 102 may provide its available bindings1112, binding A 1112 a and binding B 1112 b. After the provider 102 addsits available bindings 1112, the requestors 104 a, 104 b may use theirdesired bindings 1112 a, 1112 b respectively. The provider 102 may thencontinue to provide the bindings 1112 to the requestors 104 a, 104 b.Specifically, the provider 102 may provide binding A 1112 a to requestorA 104 a and binding B 1112 b to requestor B 104 b.

If only one of the requestors 104 removes its stay online binding 1120,the provider 102 may remain connected to the intervening access nodenetwork 110 and may continue to provide its available bindings 1112. Forexample, if requestor A 104 a were to remove its stay online binding A1120 a, the provider 102 may then stop providing binding A 1112 a torequestor A 104 a. However, because requestor B 104 b is still addingits stay online binding B 1120 b, the provider 102 may continue toprovide its available bindings 1112 and may continue providing binding B1112 b to requestor B 104 b. If both requestor A 104 a and requestor B104 b were to stop remove their stay online bindings 1120 a, 1120 b suchthat no requestor 104 connected to the intervening access node network110 was providing a stay online binding 1120 that concerned the provider102, for example, then the provider 102 may disconnect from the 110network for a time. This may eliminate the challenges involved withcleaning up a disconnected device, because the ability to make thisdetermination may allow a provider to disconnect from the network whenits services are not required.

FIG. 10 is a flow diagram of an embodiment of a method 1200 of aprovider 102 communicating with an intervening access node network 110.The provider 102 may connect 1202 to the intervening access node network110. After the provider 102 is connected 1202 to the intervening accessnode network 110, the provider 102 may determine 1206 whether any stayonline bindings 320 exist on the intervening access node network 110that identify any bindings 112 that the provider 102 may provide 1210.If the provider 102 determines 1206 that there are stay online bindings320 that identify at least one binding 112 provided by the provider 102,then the provider 102 may provide 1210 its bindings 112 to network 110.If the provider 102 determines 1206 that there are not any stay onlinebindings 320 that identify at least one binding 112 provided 1210 by theprovider 102, then the provider 102 may disconnect 1214 from theintervening access node network 110. In an alternate embodiment, thedetermination 1206 may utilize a connectionless protocol and precede theconnection to the network 1202.

After the provider 102 has provided 1210 its bindings 112, the provider102 may wait 1212 for a period of time before determining 1206 whetherthe stay online binding 320 is still present. Additionally, the provider102, after disconnecting 1214 from the network 100, may wait 1216 for aperiod of time before reconnecting 1202 to the network 100 anddetermining 1206 whether applicable stay online bindings 320 arepresent. These periods of time may be the same period of time or maydiffer in length.

FIG. 11 is a flow diagram of an embodiment of a method 1300 of arequestor 104 establishing communication with a provider 102 in anetwork 100. The requestor 104 may connect 1302 to the network 100. Therequestor 104 may determine 1304 which bindings 112 are needed. Forexample, the requestor 104 may determine 1304 that it needs data from aservice 108. The requestor 104 may then determine 1304 which bindings112 are needed to obtain the data.

The requestor 104 may package 1306 new stay online bindings 320.Packaging 1306 new stay online bindings 320 may include packaging 1306the appropriate object ID 114 with an interface ID 322 that is the stayonline identifier. Packaging 1306 new stay online bindings 320 may alsoinclude not packaging 1306 previously packaged or no longer requiredstay online bindings 320 as discussed below.

The requestor 104 may provide 1308 the stay online bindings 320.Providing 1308 the stay online bindings 320 may include sending a stayonline binding 320 over the network 100. The requestor 104 may receive1312 bindings 112 from a provider 102. The requestor 104 may determine1314 whether to remove at least one stay online binding 320. If therequestor 104 determines 1314 that it should not remove at least onestay online binding 320, the requestor 104 may wait 1322 for a period oftime before again determining which bindings 112 are needed. If therequestor 104 determines 1314 that it should remove at least one stayonline binding 320, the requestor 104 may remove 1316 the stay onlinebinding 320. In the present embodiment, the requestor 104 only removes1316 the stay online bindings 320 that are no longer needed. Forexample, after the requestor 104 has received the desired services 108,the requestor 104 may no longer need the bindings 112 and may thereforeremove 1316 the stay online binding 320 for that service 108.

The requestor 104 may determine 1318 whether any remaining bindings 112are needed. If the requestor 104 determines 1318 that there areremaining bindings 112 that are needed, the requestor 104 may againdetermine 1304 which bindings 112 are needed. If the requestor 104determines 1304 that there are not any remaining bindings 112 that areneeded, the requestor 104 may wait 1320 for a period of time and againdetermine 1304 which bindings 112 are needed.

FIG. 12 is a block diagram of hardware components that may be used in anembodiment of a computing device or an embedded device. A computingdevice and/or an embedded device may be used as a provider, a requestorand/or an intervening access node. A CPU 1410 or processor may beprovided to control the operation of the device 1402, including theother components thereof, which are coupled to the CPU 1410 via a bus1412. The CPU 1410 may be embodied as a microprocessor, microcontroller,digital signal processor or other device known in the art. The CPU 1410performs logical and arithmetic operations based on program code storedwithin the memory 1414. In certain embodiments, the memory 1414 may beon-board memory included with the CPU 1410. For example,microcontrollers often include a certain amount of on-board memory.

The computing or embedded device 1402 may also include a networkinterface 1416. The network interface 1416 facilitates communicationbetween the device 1402 and other devices connected to the network 100.The network 100 may be a pager network, a cellular network, a globalcommunications network, the Internet, a computer network, a telephonenetwork, etc. The network interface 1416 operates according to standardprotocols for the applicable network 100.

The device 1402 may also include memory 1414. The memory 1414 mayinclude a random access memory (RAM) for storing temporary data.Alternatively, or in addition, the memory 1414 may include a read-onlymemory (ROM) for storing more permanent data, such as fixed code andconfiguration data. The memory 1414 may also be embodied as a magneticstorage device, such as a hard disk drive. The memory 1414 may be anytype of electronic device capable of storing electronic information.

The device 1402 may also include communication ports 1418, whichfacilitate communication with other devices. The device 1402 may alsoinclude input/output devices 1420, such as a keyboard, a mouse, ajoystick, a touchscreen, a monitor, speakers, a printer, etc.

The present systems and methods may be used in several contexts. FIG. 13illustrates one embodiment of a system wherein the present systems andmethods may be implemented. FIG. 13 is a block diagram that illustratesone embodiment of a lighting system 1200 that includes a lightingcontroller system 1508. The lighting system 1500 of FIG. 13 may beincorporated in various rooms in a home. As illustrated, the system 1500includes a room A 1502, a room B 1504, and a room C 1506. Although threerooms are shown in FIG. 13, the system 1500 may be implemented in anynumber and variety of rooms within a home, dwelling, or otherenvironment.

The lighting controller system 1508 may monitor and control additionalembedded systems and components within the system 1500. In oneembodiment, the room A 1502 and the room B 1504 each include a switchcomponent 1514, 1518. The switch components 1514, 1518 may also includea secondary embedded system 1516, 1520. The secondary embedded systems1516, 1520 may receive instructions from the lighting controller system1508. The secondary embedded systems 1516, 1520 may then execute theseinstructions. The instructions may include powering on or powering offvarious light components 1510, 1512, 1522, 1524. The instructions mayalso include dimming the brightness or increasing the brightness of thevarious light components 1510, 1512, 1522, 1524. The instructions mayfurther include arranging the brightness of the light components 1510,1512, 1522, 1524 in various patterns. The secondary embedded systems1516, 1520 facilitate the lighting controller system 1508 to monitor andcontrol each light component 1510, 1512, 1522, 1524 located in the roomA 1502 and the room B 1504.

The lighting controller system 1508 might also provide instructionsdirectly to a light component 1526 that includes a secondary embeddedsystem 1528 in the depicted room C 1506. The lighting controller system1508 may instruct the secondary embedded system 1528 to power down orpower up the individual light component 1526. Similarly, theinstructions received from the lighting controller system 1508 mayinclude dimming the brightness or increasing the brightness of theindividual light component 1526.

The lighting controller system 1508 may also monitor and provideinstructions directly to individual light components 1530 1532 withinthe system 1500. These instructions may include similar instructions asdescribed previously.

In the embodiment of FIG. 13, the light components 1510, 1512, 1522,1524, 1526, 1530, 1532 may be treated as a provider. These componentsmay provide data regarding their status, for example whether a lightcomponent is on or off or the current or past wattage passing throughthe light component. Similarly, secondary embedded systems 1516, 1520,1528 may act as both a provider and a requestor. For example, thesecondary embedded systems 1516, 1520, 1528 may request data or servicesfrom the light components 1510, 1512, 1522, 1524, 1526, 1530, 1532. Thesecondary embedded systems 1516, 1520, 1528 may also provide datareceived from the light components 1510, 1512, 1522, 1524, 1526, 1530,1532 to the lighting controller system 1508, which may act as arequestor.

FIG. 14 is an additional embodiment of a system wherein the presentsystems and methods of the present invention may be implemented. FIG. 14is a block diagram illustrating a security system 1600. The securitysystem 1600 in the depicted embodiment is implemented in a room A 1602,a room B 1604, and a room C 1606. These rooms may be in the confines ofa home or other enclosed environment. The system 1600 may also beimplemented in an open environment where the rooms A, B and C, 1602,1604, 1606 respectively represent territories or boundaries.

The system 1600 includes a security controller system 1608. The securitycontroller system 1608 monitors and receives information from thevarious components within the system 1600. For example, a motion sensor1614, 1618 may include a secondary embedded system 1616, 1620. Themotion sensors 1614, 1618 may monitor an immediate space for motion andalert the security controller system 1608 when motion is detected viathe secondary embedded system 1616, 1620. The security controller system1608 may also provide instructions to the various components within thesystem 1600. For example, the security controller system 1608 mayprovide instructions to the secondary embedded systems 1616, 1620 topower up or power down a window sensor 1610, 1622 and a door sensor1612, 1624. In one embodiment, the secondary embedded systems 1616, 1620notify the security controller system 1608 when the window sensors 1610,1622 detect movement of a window. Similarly, the secondary embeddedsystems 1616, 1620 notify the security controller system 1608 when thedoor sensors 1612, 1624 detect movement of a door. The secondaryembedded systems 1616, 1620 may instruct the motion sensors 1614, 1618to activate the LED (not shown) located within the motion sensors 1614,1618.

The security controller system 1608 may also monitor and provideinstructions directly to individual components within the system 1600.For example, the security controller system 1608 may monitor and provideinstructions to power up or power down to a motion sensor 1630 or awindow sensor 1632. The security controller system 1608 may alsoinstruct the motion sensor 1630 and the window sensor 1632 to activatethe LED (not shown) or audio alert notifications within the sensors1630, 1632.

Each individual component comprising the system 1600 may also include asecondary embedded system. For example, FIG. 14 illustrates a doorsensor 1626 including a secondary embedded system 1628. The securitycontroller system 1608 may monitor and provide instructions to thesecondary embedded system 1628 in a similar manner as previouslydescribed.

In the embodiment of FIG. 14, the sensors 1610, 1612, 1622, 1624, 1626,1630, 1632 may be treated as providers. These sensors 1610, 1612, 1622,1624, 1626, 1630, 1632 may provide data regarding their status. Forexample, the window sensors 1610, 1622, 1632 may provide data regardingwhether they are open or closed. Similarly, secondary embedded systems1616, 1620, 1628 may act as both a provider and a requestor. Forexample, the secondary embedded systems 1616, 1620, 1628 may requestdata or services from the sensors 1610, 1612, 1622, 1624, 1626, 1630,1632. The secondary embedded systems 1616, 1620, 1628 may also providedata received from the sensors 1610, 1612, 1622, 1624, 1626, 1630, 1632to the security controller system 1608, which may act as a requestor.

FIG. 15 is a block diagram illustrating one embodiment of a home system1700. The home system 1700 includes a home controller 1708 thatfacilitates the monitoring of various systems such as the lightingsystem 1500, the security system 1600, and the like. The home system1700 allows a user to control various components and systems through oneor more embedded systems. In one embodiment, the home controller system1708 monitors and provides information in the same manner as previouslydescribed in relation to FIGS. 13 and 14. In the depicted embodiment,the home controller 1708 provides instructions to a heating component1724 via a secondary embedded system 1720. The heating component 1724may include a furnace or other heating device typically found inresident locations or offices. The home controller system 1708 mayprovide instructions to power up or power down the heating component1724 via the secondary embedded system 1720.

Similarly, the home controller 1708 may monitor and provide instructionsdirectly to a component within the home system 1700 such as a coolingcomponent 1730. The cooling component 1730 may include an airconditioner or other cooling device typically found in residentlocations or offices. The central home controller 1708 may instruct thecooling component 1730 to power up or power down depending on thetemperature reading collected by the central embedded system 1708. Thehome system 1700 functions in a similar manner as previously describedin relation to FIGS. 13 and 14.

In the embodiment of FIG. 15, the window sensor 1710, door sensor 1712,heating component 1724, cooling component 1730, and lighting components1722, 1726, 1732 may be treated as providers. These elements 1710, 1712,1722, 1724, 1726, 1730, 1732 may provide data regarding their status.For example, the heating and cooling components 1724, 1730 may providedata regarding the present temperature in their respective rooms 1704,1706. The heating and cooling components 1724, 1730 may provide dataregarding the status of the component, whether it is on or off, itsrecent power usage, any system errors, etc. Similarly, secondaryembedded systems 1716, 1720, 1728 may act as both a provider and arequestor. For example, the secondary embedded systems 1716, 1720, 1728may request data or services from these elements 1710, 1712, 1722, 1724,1726, 1730, 1732. The secondary embedded systems 1716, 1720, 1728 mayalso provide data received from the elements 1710, 1712, 1722, 1724,1726, 1730, 1732 to the home controller system 1708, which may act as arequestor.

There are many types of embedded devices and many reasons for creatingdevice networks. Several examples of device networking applications willbe set forth. It will be appreciated by those skilled in the art thatthe examples discussed are not exhaustive.

One example of a device networking application is remote monitoring.Many useful device networks involve remote monitoring, the one-waytransfer of information from one node to another. In these applications,providers typically act as small servers that report certain informationin response to a requestor. Providers can also be set up to publishtheir state information to subscribers. A requestor may ask for periodicreports or for updates whenever the state changes, perhaps with somemeans of limiting how often updates are to be sent. Providers can be setup to notify requestors when some event or exceptional condition occurs.

Another example of a device network application is remote control, whererequestors are able to send commands to providers to invoke somespecific action. In most cases, remote control involves some sort offeedback.

A still further example of a device networking application isdistributed control systems. The functions and data associated withindividual providers can be combined and coordinated through a networkto create a distributed system that provides additional value. Sometimesthese distributed control systems can be established more or lessautomatically. In many cases, a more sophisticated device joins apeer-to-peer network to perform configuration, monitoring or diagnosticduties. Such systems may be created by objects that communicate as peersor through a master-slave configuration, in which each object in thesystem communicates with a single, central node that contains all of thecontrol logic.

With each category of networking application, there are a variety ofways in which requestors may connect to providers. When a relativelysmall number of providers are involved, a requestor may use a webbrowser, pager or even a WAP-enabled cell phone to communicate with aprovider in a more or less interactive manner. As the number ofproviders grows, however, these methods may become unworkable andrequestors may employ more general data management techniques such as aspreadsheet or database application.

As a variety of networks are implemented over time and with differenttechnologies, the situation can arise in which multiple networks mightsit in the same home or facility, each using their own protocols andunable to communicate with the others. In this case the various networksand protocols can be bridged to create a single, larger network. Thiscan allow a single application to access each provider, simplifying theinteraction with all of the providers.

Information and signals may be represented using any of a variety ofdifferent technologies and techniques. For example, data, instructions,commands, information, signals, bits, symbols, and chips that may bereferenced throughout the above description may be represented byvoltages, currents, electromagnetic waves, magnetic fields or particles,optical fields or particles, or any combination thereof.

The various illustrative logical blocks, modules, circuits, andalgorithm steps described in connection with the embodiments disclosedherein may be implemented as electronic hardware, computer software, orcombinations of both. To clearly illustrate this interchangeability ofhardware and software, various illustrative components, blocks, modules,circuits, and steps have been described above generally in terms oftheir functionality. Whether such functionality is implemented ashardware or software depends upon the particular application and designconstraints imposed on the overall system. Skilled artisans mayimplement the described functionality in varying ways for eachparticular application, but such implementation decisions should not beinterpreted as causing a departure from the scope of the presentinvention.

The various illustrative logical blocks, modules, and circuits describedin connection with the embodiments disclosed herein may be implementedor performed with a general purpose processor, a digital signalprocessor (DSP), an application specific integrated circuit (ASIC), afield programmable gate array signal (FPGA) or other programmable logicdevice, discrete gate or transistor logic, discrete hardware components,or any combination thereof designed to perform the functions describedherein. A general purpose processor may be a microprocessor, but in thealternative, the processor may be any conventional processor,controller, microcontroller, or state machine. A processor may also beimplemented as a combination of computing devices, e.g., a combinationof a DSP and a microprocessor, a plurality of microprocessors, one ormore microprocessors in conjunction with a DSP core, or any other suchconfiguration.

The steps of a method or algorithm described in connection with theembodiments disclosed herein may be embodied directly in hardware, in asoftware module executed by a processor, or in a combination of the two.A software module may reside in RAM memory, flash memory, ROM memory,EPROM memory, EEPROM memory, registers, hard disk, a removable disk, aCD-ROM, or any other form of storage medium known in the art. Anexemplary storage medium is coupled to the processor such that theprocessor can read information from, and write information to, thestorage medium. In the alternative, the storage medium may be integralto the processor. The processor and the storage medium may reside in anASIC. The ASIC may reside in a user terminal. In the alternative, theprocessor and the storage medium may reside as discrete components in auser terminal.

The methods disclosed herein comprise one or more steps or actions forachieving the described method. The method steps and/or actions may beinterchanged with one another without departing from the scope of thepresent invention. In other words, unless a specific order of steps oractions is required for proper operation of the embodiment, the orderand/or use of specific steps and/or actions may be modified withoutdeparting from the scope of the present invention.

While specific embodiments and applications of the present inventionhave been illustrated and described, it is to be understood that theinvention is not limited to the precise configuration and componentsdisclosed herein. Various modifications, changes, and variations whichwill be apparent to those skilled in the art may be made in thearrangement, operation, and details of the methods and systems of thepresent invention disclosed herein without departing from the spirit andscope of the invention.

What is claimed is:
 1. A system in a distributed network, comprising: arequestor, a provider that provides a service to the requestor accordingto a request sent from the requestor; and an intervening access nodethat intervenes between the requestor and the provider in electroniccommunication with the requestor and the provider, wherein the requestorsends a stay online binding including a first identifier to theintervening access node, the intervening access node holds the stayonline binding, the provider monitors communications between theprovider and the intervening access node, so as to determine whether ornot the stay online binding including the first identifier that isidentical to a second identifier included in a binding of the providerexists in the intervening access node, when the provider determines thatthe stay online binding including the identical first identifier existsin the intervening access node, the provider sends the binding includingthe second identifier to the intervening access node, so as to establishconnections between the provider and the intervening access node, andwhen the provider determines that the stay online binding including theidentical first identifier does not exist in the intervening accessnode, the provider is disconnected from the intervening access node. 2.The system according to claim 1, wherein the provider comprises aprocessor, and a memory that stores instructions executed by theprocessor, and the instructions are executable to monitor the stayonline binding including the identical first identifier sent from theintervening access node in order to monitor the communications.
 3. Thesystem according to claim 1, wherein the provider comprises a processor,and a memory that stores instructions executed by the processor, theintervening access node has a database including the stay onlinebinding, and the instructions are executable to monitor the stay onlinebinding including the identical first identifier in such a manner thatchanges in contents of the database are determined in order to monitorthe communications.
 4. The system according to any one of claim 1,wherein the instructions executed by the processor are also executableto: wait a predetermined period of time after the provider isdisconnected from the intervening access node; and have the provider tomake a query on the intervening access node as to what the interveningaccess node has the stay online binding including the identical firstidentifier.
 5. The system according to claim 4, wherein the providermakes the query using a connectionless-type protocol.
 6. The systemaccording to any one of claim 2, wherein the instructions executed bythe processor of the requestor are also executable to: allow therequestor to receive data or services from the provider using thebinding.
 7. A method for managing communications of a system in adistributed network comprising a requestor, a provider that provides aservice to the requestor according to a request sent from the requestor,and an intervening access node that intervenes between the requestor andthe provider in electronic communication with the requestor and theprovider, the method comprising: sending a stay online binding includinga first identifier to the intervening access node by the requestor;holding the stay online binding by the intervening access node;monitoring communications between the provider and the interveningaccess node by the provider, so as to determine whether or not the stayonline binding including the first identifier that is identical to asecond identifier included in a binding of the provider exists in theintervening access node; when the provider determines that the stayonline binding including the identical first identifier exists in theintervening access node, sending the binding including the secondidentifier to the intervening access node by the provider, so as toestablish connections between the provider and the intervening accessnode; and when the provider determines that the stay online bindingincluding the identical first identifier does not exist in theintervening access node, disconnecting the provider from the interveningaccess node.
 8. The method according to claim 7, further comprising:monitoring the stay online binding including the identical firstidentifier sent from the intervening access node in order to monitor thecommunications by the provider.
 9. The method according to claim 7,further comprising: monitoring the stay online binding including theidentical first identifier in such a manner that changes in contents ofthe database are determined in order to monitor the communications bythe provider.
 10. The method according to claim 8, wherein themonitoring is executed by a connectionless-type protocol.
 11. The methodaccording to any one of claim 7, further comprising: waiting apredetermined period of time after the provider is disconnected from theintervening access node; and making a query on the intervening accessnode by the provider as to what the intervening access node has the stayonline binding including the identical first identifier.
 12. The methodaccording to any one of claim 7, further comprising: allowing therequestor to receive data or services from the provider using thebinding.
 13. An embedded device in electronic communication with arequestor via an intervening access node in a distributed network so asto provide a service to the requestor according to a request sent fromthe requestor, the device comprising: a processor; and a memory thatstores instructions executed by the processor, wherein the devicereceives a stay online binding including a first identifier from therequestor via the intervening access node, the device monitorscommunications with the intervening access node, so as to determinewhether or not the stay online binding including the first identifierthat is identical to a second identifier included in a binding of thedevice exists in the intervening access node, when the device determinesthat the stay online binding including the identical first identifierexists in the intervening access node, the device sends the bindingincluding the second identifier to the intervening access node, so as toestablish connections between the device and the intervening accessnode, and when the device determines that the stay online bindingincluding the identical first identifier does not exist in theintervening access node, the device is disconnected from the interveningaccess node.